package frsf.cidisi.exercise.tp1.search;

import frsf.cidisi.exercise.tp1.utiles.Parametros;
import frsf.cidisi.faia.solver.search.IStepCostFunction;
import frsf.cidisi.faia.solver.search.NTree;

/**
 * This class can be used in any search strategy like
 * Uniform Cost.
 */
public class CostFunction implements IStepCostFunction {

    /**
     * This method calculates the cost of the given NTree node.
     */
	
	private double ponderacionDistancia;
	
    public double calculateCost(NTree node) {
       	
    	NTree node2 = new NTree();
    	node2 = node.getParent();
    	
    	EstadoActualArqueologo auxAgentState = ((EstadoActualArqueologo)node.getAgentState());
    	EstadoActualArqueologo auxAgentState2 = ((EstadoActualArqueologo)node2.getAgentState());
    	
        double costo = auxAgentState.getMapa()[auxAgentState.getPosicionAgente()-1][auxAgentState2.getPosicionAgente()-1]*ponderacionDistancia ;
               
        return costo;
    }


	public double getPonderacionDistancia() {
		return ponderacionDistancia;
	}

	public void setPonderacionDistancia(double ponderacionDistancia) {
		this.ponderacionDistancia = ponderacionDistancia;
	}
    
    
}


